GdkWindow: Add gdk_window_set_background_rgba()
authorCarlos Garnacho <carlosg@gnome.org>
Thu, 21 Oct 2010 13:26:40 +0000 (15:26 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Fri, 22 Oct 2010 18:14:56 +0000 (20:14 +0200)
This new function takes a GdkRGBA in order to set the background to
an alpha color. Keep in mind that RGBA visuals and a composited environment
are still necessary to have an alpha background displayed.

docs/reference/gdk/gdk3-sections.txt
gdk/gdkwindow.c
gdk/gdkwindow.h

index db074de00afab3c25c0ab43908852a502e59618f..40bcaaf67de090785df8cd107d2847995fef8e05 100644 (file)
@@ -436,6 +436,7 @@ gdk_window_merge_child_input_shapes
 gdk_window_set_static_gravities
 gdk_window_set_title
 gdk_window_set_background
+gdk_window_set_background_rgba
 gdk_window_set_background_pattern
 gdk_window_get_background_pattern
 GDK_PARENT_RELATIVE
index 9ff1934b390e6d5f57a2b3801c1e7ae9bbd11790..d186b4dce5883ea9a7abf0f57aca66a899394a28 100644 (file)
@@ -6669,6 +6669,32 @@ gdk_window_set_background (GdkWindow      *window,
   cairo_pattern_destroy (pattern);
 }
 
+/**
+ * gdk_window_set_background_rgba:
+ * @window: a #GdkWindow
+ * @rgba: a #GdkRGBA color
+ *
+ * Sets the background color of @window.
+ *
+ * See also gdk_window_set_background_pattern().
+ **/
+void
+gdk_window_set_background_rgba (GdkWindow *window,
+                                GdkRGBA   *rgba)
+{
+  cairo_pattern_t *pattern;
+
+  g_return_if_fail (GDK_IS_WINDOW (window));
+  g_return_if_fail (rgba != NULL);
+
+  pattern = cairo_pattern_create_rgba (rgba->red, rgba->green,
+                                       rgba->blue, rgba->alpha);
+
+  gdk_window_set_background_pattern (window, pattern);
+
+  cairo_pattern_destroy (pattern);
+}
+
 /**
  * gdk_window_set_background_pattern:
  * @window: a #GdkWindow
index b7897ce55a902d89f424189ebd1d192e8ba55aea..8a2fd4ba0e1da2c546d3860a3bad357121b2a31f 100644 (file)
@@ -697,6 +697,8 @@ void          gdk_window_set_transient_for (GdkWindow     *window,
                                            GdkWindow     *parent);
 void         gdk_window_set_background  (GdkWindow       *window,
                                          const GdkColor  *color);
+void          gdk_window_set_background_rgba (GdkWindow *window,
+                                              GdkRGBA   *rgba);
 void         gdk_window_set_background_pattern (GdkWindow       *window,
                                                  cairo_pattern_t *pattern);
 cairo_pattern_t *gdk_window_get_background_pattern (GdkWindow     *window);